﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Distrackting.DataLayer;
using System.Collections.Generic;
using System.Collections;

namespace Distrackting.BusinessLayer
{
    public class GerirLocalidade
    {
        public static Guid inserirLocalidade(String descricao)
        {
            try
            {
                Localidade a = new Localidade();
                a.nome = descricao;
                return dataLocalidade.createLocalidade(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível inserir a localidade.");
            }
        }

        public static void apagarLocalidade(Guid cod_Localidade)
        {
            try
            {
                Localidade a = dataLocalidade.getLocalidade(cod_Localidade);
                dataLocalidade.deleteLocalidade(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível remover a localidade.");
            }
        }

        public static Localidade getLocalidade(Guid cod_Localidade)
        {
            try
            {
                return dataLocalidade.getLocalidade(cod_Localidade);
            }
            catch (Exception)
            {
                throw new Exception("Não foi possível aceder à localidade.");
            }
        }

        public static Localidade getLocalidadeByDescricao(String descricao)
        {
            try
            {
                Localidade loc = new Localidade();
                foreach (Localidade a in dataLocalidade.getLocalidades().ToList())
                {
                    if (a.nome == descricao) return a;
                }
                return loc;
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível aceder a localidade pretendida.");
            }
        }

        public static List<Localidade> getLocalidades()
        {
            try
            {
                return dataLocalidade.getLocalidades().ToList();
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível aceder à lista de localidades.");
            }
        }
    }
}
